package testPackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

import java.util.List;
import java.util.concurrent.TimeUnit;

/**
 * step by step 03 检查网页上是否存在元素
 * 1、使用driver.findElements()方法检查网页上是否存在元素
 * 返回由作为参数传递的“按定位器”定位的webElement列表
 * 2、为何不使用driver.findElement()?
 * -当元素不存在时，driver.findElement()方法会报出NoSuchElementException异常。
 * 我们必须先捕获异常，在catch块中编写代码以采取进一步的步骤。
 *
 */
public class SeleniumOther02 {
    @Test
    public void cookiesTest(){
        String str = "D:\\\\Enviroments\\\\geckodriver-v0.26.0-win64\\\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver",str);
        WebDriver driver = new ChromeDriver();
        driver.get("https://tb.alicdn.com/snapshot/index.html");
        //获取网页上的元素 该方法将一直等到找到元素时为驱动程序指定隐式等待
        List<WebElement> dynamicElement = driver.findElements(By.id("q"));
        if(dynamicElement.size() != 0){
            System.out.println("Element present.");
        }else{
            System.out.println("Element not present.");
        }
        //先将隐式等待设置为0，最后再将隐式等待恢复至默认值
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
        List<WebElement> dynamicElement1 = driver.findElements(By.id("q"));
        if(dynamicElement1.size() != 0){
            System.out.println("Element present.");
        }else{
            System.out.println("Element not present.");
        }
        driver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
    }
}
